package com.fr.report.script.core.parser;

import com.fr.base.core.antlr.ANTLRStringBuffer;
import com.fr.base.core.antlr.ByteBuffer;
import com.fr.base.core.antlr.CharBuffer;
import com.fr.base.core.antlr.CharScanner;
import com.fr.base.core.antlr.CharStreamException;
import com.fr.base.core.antlr.CharStreamIOException;
import com.fr.base.core.antlr.InputBuffer;
import com.fr.base.core.antlr.LexerSharedInputState;
import com.fr.base.core.antlr.NoViableAltForCharException;
import com.fr.base.core.antlr.RecognitionException;
import com.fr.base.core.antlr.Token;
import com.fr.base.core.antlr.TokenStream;
import com.fr.base.core.antlr.TokenStreamException;
import com.fr.base.core.antlr.TokenStreamIOException;
import com.fr.base.core.antlr.TokenStreamRecognitionException;
import com.fr.base.core.antlr.collections.impl.BitSet;
import java.io.InputStream;
import java.io.Reader;
import java.util.Hashtable;

public class FRLexer extends CharScanner
  implements FRParserTokenTypes, TokenStream
{
  public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
  public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
  public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
  public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());

  public FRLexer(InputStream paramInputStream)
  {
    this(new ByteBuffer(paramInputStream));
  }

  public FRLexer(Reader paramReader)
  {
    this(new CharBuffer(paramReader));
  }

  public FRLexer(InputBuffer paramInputBuffer)
  {
    this(new LexerSharedInputState(paramInputBuffer));
  }

  public FRLexer(LexerSharedInputState paramLexerSharedInputState)
  {
    super(paramLexerSharedInputState);
    this.caseSensitiveLiterals = true;
    setCaseSensitive(true);
    this.literals = new Hashtable();
  }

  public Token nextToken()
    throws TokenStreamException
  {
    Token localToken = null;
    Object localObject = null;
    int i = 0;
    resetText();
    try
    {
      while (true)
      {
        switch (LA(1))
        {
        case '?':
          mQUESTION(true);
          localToken = this._returnToken;
          break;
        case '(':
          mLPAREN(true);
          localToken = this._returnToken;
          break;
        case ')':
          mRPAREN(true);
          localToken = this._returnToken;
          break;
        case '[':
          mLBRACK(true);
          localToken = this._returnToken;
          break;
        case ']':
          mRBRACK(true);
          localToken = this._returnToken;
          break;
        case '{':
          mLCURLY(true);
          localToken = this._returnToken;
          break;
        case '}':
          mRCURLY(true);
          localToken = this._returnToken;
          break;
        case ',':
          mCOMMA(true);
          localToken = this._returnToken;
          break;
        case '/':
          mDIV(true);
          localToken = this._returnToken;
          break;
        case '+':
          mPLUS(true);
          localToken = this._returnToken;
          break;
        case '-':
          mMINUS(true);
          localToken = this._returnToken;
          break;
        case '*':
          mSTAR(true);
          localToken = this._returnToken;
          break;
        case '%':
          mMOD(true);
          localToken = this._returnToken;
          break;
        case '^':
          mPOWER(true);
          localToken = this._returnToken;
          break;
        case ';':
          mSEMI(true);
          localToken = this._returnToken;
          break;
        case '#':
          mSHARP(true);
          localToken = this._returnToken;
          break;
        case '@':
          mAT(true);
          localToken = this._returnToken;
          break;
        case '`':
          mALLL2(true);
          localToken = this._returnToken;
          break;
        case '.':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          mINT_NUM(true);
          localToken = this._returnToken;
          break;
        case '"':
        case '\'':
          mSTRING_LITERAL(true);
          localToken = this._returnToken;
          break;
        case '\t':
        case '\n':
        case '\f':
        case '\r':
        case ' ':
          mWS(true);
          localToken = this._returnToken;
          break;
        case '\11':
        case '\14':
        case '\15':
        case '\16':
        case '\17':
        case '\18':
        case '\19':
        case '\20':
        case '\21':
        case '\22':
        case '\23':
        case '\24':
        case '\25':
        case '\26':
        case '\27':
        case '\28':
        case '\29':
        case '\30':
        case '\31':
        case '!':
        case '$':
        case '&':
        case ':':
        case '<':
        case '=':
        case '>':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '\\':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
        case '|':
        default:
          if ((LA(1) == ':') && (LA(2) == ':'))
          {
            mDCOLON(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '=') && (LA(2) == '='))
          {
            mEQUAL(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '!') && (LA(2) == '='))
          {
            mNOT_EQUAL(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '<') && (LA(2) == '>'))
          {
            mNOT_EQUAL2(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '>') && (LA(2) == '='))
          {
            mGE(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '<') && (LA(2) == '='))
          {
            mLE(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '|') && (LA(2) == '|'))
          {
            mLOR(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '&') && (LA(2) == '&'))
          {
            mLAND(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '!') && (LA(2) == '0'))
          {
            mALLL(true);
            localToken = this._returnToken;
          }
          else if ((LA(1) == '&') && (_tokenSet_0.member(LA(2))))
          {
            mCR_ADRESS(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == ':')
          {
            mCOLON(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '=')
          {
            mEQUAL2(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '!')
          {
            mLNOT(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '>')
          {
            mGT(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '<')
          {
            mLT(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '|')
          {
            mBOR(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == '&')
          {
            mBAND(true);
            localToken = this._returnToken;
          }
          else if (_tokenSet_1.member(LA(1)))
          {
            mIDENT(true);
            localToken = this._returnToken;
          }
          else if (LA(1) == 65535)
          {
            uponEOF();
            this._returnToken = makeToken(1);
          }
          else
          {
            throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
          }
        }
        if (this._returnToken != null)
          break;
      }
      i = this._returnToken.getType();
      i = testLiteralsTable(i);
      this._returnToken.setType(i);
      return this._returnToken;
    }
    catch (RecognitionException localRecognitionException)
    {
      throw new TokenStreamRecognitionException(localRecognitionException);
    }
    catch (CharStreamException localCharStreamException)
    {
      if (localCharStreamException instanceof CharStreamIOException)
        throw new TokenStreamIOException(((CharStreamIOException)localCharStreamException).io);
      throw new TokenStreamException(localCharStreamException.getMessage());
    }
  }

  public final void mQUESTION(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 41;
    match('?');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLPAREN(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 24;
    match('(');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mRPAREN(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 26;
    match(')');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLBRACK(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 28;
    match('[');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mRBRACK(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 30;
    match(']');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLCURLY(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 31;
    match('{');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mRCURLY(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 32;
    match('}');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mCOLON(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 27;
    match(':');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mDCOLON(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 33;
    match("::");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mCOMMA(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 25;
    match(',');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mEQUAL(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 8;
    match("==");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mEQUAL2(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 9;
    match('=');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLNOT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 22;
    match('!');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mNOT_EQUAL(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 10;
    match("!=");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mNOT_EQUAL2(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 11;
    match("<>");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mDIV(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 19;
    match('/');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mPLUS(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 16;
    match('+');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mMINUS(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 17;
    match('-');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mSTAR(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 18;
    match('*');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mMOD(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 20;
    match('%');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mPOWER(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 21;
    match('^');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mGE(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 12;
    match(">=");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mGT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 13;
    match('>');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLE(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 14;
    match("<=");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 15;
    match('<');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mBOR(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 42;
    match('|');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mBAND(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 43;
    match('&');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLOR(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 6;
    match("||");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mLAND(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 7;
    match("&&");
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mSEMI(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 29;
    match(';');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mSHARP(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 39;
    match('#');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mAT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 40;
    match('@');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mALLL(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 34;
    match('!');
    match('0');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mALLL2(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 35;
    match('`');
    match('0');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mIDENT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 23;
    mChar(false);
    while (true)
    {
      while (_tokenSet_1.member(LA(1)))
        mChar(false);
      if ((LA(1) < '0') || (LA(1) > '9'))
        break;
      mDIGIT(false);
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mChar(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 44;
    switch (LA(1))
    {
    case '$':
      match('$');
      break;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
      matchRange('A', 'Z');
      break;
    case '_':
      match('_');
      break;
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
    case 'u':
    case 'v':
    case 'w':
    case 'x':
    case 'y':
    case 'z':
      matchRange('a', 'z');
      break;
    case 'À':
    case 'Á':
    case 'Â':
    case 'Ã':
    case 'Ä':
    case 'Å':
    case 'Æ':
    case 'Ç':
    case 'È':
    case 'É':
    case 'Ê':
    case 'Ë':
    case 'Ì':
    case 'Í':
    case 'Î':
    case 'Ï':
    case 'Ð':
    case 'Ñ':
    case 'Ò':
    case 'Ó':
    case 'Ô':
    case 'Õ':
    case 'Ö':
      matchRange(192, 214);
      break;
    case 'Ø':
    case 'Ù':
    case 'Ú':
    case 'Û':
    case 'Ü':
    case 'Ý':
    case 'Þ':
    case 'ß':
    case 'à':
    case 'á':
    case 'â':
    case 'ã':
    case 'ä':
    case 'å':
    case 'æ':
    case 'ç':
    case 'è':
    case 'é':
    case 'ê':
    case 'ë':
    case 'ì':
    case 'í':
    case 'î':
    case 'ï':
    case 'ð':
    case 'ñ':
    case 'ò':
    case 'ó':
    case 'ô':
    case 'õ':
    case 'ö':
      matchRange(216, 246);
      break;
    case 'ø':
    case 'ù':
    case 'ú':
    case 'û':
    case 'ü':
    case 'ý':
    case 'þ':
    case 'ÿ':
      matchRange(248, 255);
      break;
    case '%':
    case '&':
    case '\'':
    case '(':
    case ')':
    case '*':
    case '+':
    case ',':
    case '-':
    case '.':
    case '/':
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
    case ':':
    case ';':
    case '<':
    case '=':
    case '>':
    case '?':
    case '@':
    case '[':
    case '\\':
    case ']':
    case '^':
    case '`':
    case '{':
    case '|':
    case '}':
    case '~':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case ' ':
    case '¡':
    case '¢':
    case '£':
    case '¤':
    case '¥':
    case '¦':
    case '§':
    case '¨':
    case '©':
    case 'ª':
    case '«':
    case '¬':
    case '­':
    case '®':
    case '¯':
    case '°':
    case '±':
    case '²':
    case '³':
    case '´':
    case 'µ':
    case '¶':
    case '·':
    case '¸':
    case '¹':
    case 'º':
    case '»':
    case '¼':
    case '½':
    case '¾':
    case '¿':
    case '×':
    case '÷':
    default:
      if ((LA(1) >= 256) && (LA(1) <= 8191))
        matchRange(256, 8191);
      else if ((LA(1) >= 12352) && (LA(1) <= 12687))
        matchRange(12352, 12687);
      else if ((LA(1) >= 13056) && (LA(1) <= 13183))
        matchRange(13056, 13183);
      else if ((LA(1) >= 13312) && (LA(1) <= 15661))
        matchRange(13312, 15661);
      else if ((LA(1) >= 19968) && (LA(1) <= 40959))
        matchRange(19968, 40959);
      else if ((LA(1) >= 63744) && (LA(1) <= 64255))
        matchRange(63744, 64255);
      else
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mDIGIT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 48;
    matchRange('0', '9');
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mCR_ADRESS(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 38;
    mBAND(false);
    int k = 0;
    while (true)
    {
      if (_tokenSet_0.member(LA(1)))
      {
        mLETTER(false);
      }
      else
      {
        if (k >= 1)
          break;
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      ++k;
    }
    k = 0;
    while (true)
    {
      if ((LA(1) >= '0') && (LA(1) <= '9'))
      {
        mDIGIT(false);
      }
      else
      {
        if (k >= 1)
          break;
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      ++k;
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mLETTER(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 47;
    switch (LA(1))
    {
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
      matchRange('A', 'Z');
      break;
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
    case 'u':
    case 'v':
    case 'w':
    case 'x':
    case 'y':
    case 'z':
      matchRange('a', 'z');
      break;
    case '[':
    case '\\':
    case ']':
    case '^':
    case '_':
    case '`':
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mINT_NUM(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    int k;
    Token localToken = null;
    int j = this.text.length();
    int i = 36;
    switch (LA(1))
    {
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      k = 0;
      while (true)
      {
        if ((LA(1) >= '0') && (LA(1) <= '9'))
        {
          mDIGIT(false);
        }
        else
        {
          if (k >= 1)
            break;
          throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
        }
        ++k;
      }
      if (LA(1) == '.')
      {
        match('.');
        while ((LA(1) >= '0') && (LA(1) <= '9'))
          mDIGIT(false);
        i = 5;
      }
      if ((LA(1) == 'E') || (LA(1) == 'e'))
      {
        mExponent(false);
        i = 5;
      }
      break;
    case '.':
      match('.');
      i = 4;
      if ((LA(1) >= '0') && (LA(1) <= '9'))
      {
        k = 0;
        while (true)
        {
          if ((LA(1) >= '0') && (LA(1) <= '9'))
          {
            mDIGIT(false);
          }
          else
          {
            if (k >= 1)
              break;
            throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
          }
          ++k;
        }
        if ((LA(1) == 'E') || (LA(1) == 'e'))
          mExponent(false);
        i = 5;
      }
      break;
    case '/':
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mExponent(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 46;
    switch (LA(1))
    {
    case 'e':
      match('e');
      break;
    case 'E':
      match('E');
      break;
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    switch (LA(1))
    {
    case '+':
      match('+');
      break;
    case '-':
      match('-');
      break;
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      break;
    case ',':
    case '.':
    case '/':
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    int k = 0;
    while (true)
    {
      if ((LA(1) >= '0') && (LA(1) <= '9'))
      {
        mDIGIT(false);
      }
      else
      {
        if (k >= 1)
          break;
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      ++k;
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mSTRING_LITERAL(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 37;
    switch (LA(1))
    {
    case '"':
      match('"');
      while (true)
      {
        while (LA(1) == '\\')
          mESC(false);
        if (!(_tokenSet_2.member(LA(1))))
          break;
        matchNot('"');
      }
      match('"');
      break;
    case '\'':
      match('\'');
      while (true)
      {
        while (LA(1) == '\\')
          mESC(false);
        if (!(_tokenSet_3.member(LA(1))))
          break;
        matchNot('\'');
      }
      match('\'');
      break;
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mESC(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 45;
    match('\\');
    switch (LA(1))
    {
    case 'n':
      match('n');
      break;
    case 'r':
      match('r');
      break;
    case 't':
      match('t');
      break;
    case 'b':
      match('b');
      break;
    case 'f':
      match('f');
      break;
    case '"':
      match('"');
      break;
    case '\'':
      match('\'');
      break;
    case '\\':
      match('\\');
      break;
    case 'u':
      int k = 0;
      while (true)
      {
        if (LA(1) == 'u')
        {
          match('u');
        }
        else
        {
          if (k >= 1)
            break;
          throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
        }
        ++k;
      }
      mXDIGIT(false);
      mXDIGIT(false);
      mXDIGIT(false);
      mXDIGIT(false);
      break;
    case '0':
    case '1':
    case '2':
    case '3':
      matchRange('0', '3');
      if ((LA(1) >= '0') && (LA(1) <= '7') && (LA(2) >= '\3') && (LA(2) <= 65534))
      {
        matchRange('0', '7');
        if ((LA(1) >= '0') && (LA(1) <= '7') && (LA(2) >= '\3') && (LA(2) <= 65534))
        {
          matchRange('0', '7');
          break label658:
        }
        if ((LA(1) >= '\3') && (LA(1) <= 65534))
          break label658:
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      if ((LA(1) >= '\3') && (LA(1) <= 65534))
        break label658:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    case '4':
    case '5':
    case '6':
    case '7':
      matchRange('4', '7');
      if ((LA(1) >= '0') && (LA(1) <= '7') && (LA(2) >= '\3') && (LA(2) <= 65534))
      {
        matchRange('0', '7');
      }
      else
      {
        if ((LA(1) >= '\3') && (LA(1) <= 65534))
          break label658:
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      label658: localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  protected final void mXDIGIT(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 49;
    switch (LA(1))
    {
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      matchRange('0', '9');
      break;
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
      matchRange('a', 'f');
      break;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
      matchRange('A', 'F');
      break;
    case ':':
    case ';':
    case '<':
    case '=':
    case '>':
    case '?':
    case '@':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
    case '[':
    case '\\':
    case ']':
    case '^':
    case '_':
    case '`':
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  public final void mWS(boolean paramBoolean)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 50;
    int k = 0;
    while (true)
    {
      switch (LA(1))
      {
      case ' ':
        match(' ');
        break;
      case '\t':
        match('\t');
        break;
      case '\f':
        match('\f');
        break;
      case '\n':
      case '\r':
        if ((LA(1) == '\r') && (LA(2) == '\n'))
          match("\r\n");
        else if (LA(1) == '\r')
          match('\r');
        else if (LA(1) == '\n')
          match('\n');
        else
          throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
        newline();
        break;
      default:
        if (k >= 1)
          break;
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      ++k;
    }
    i = -1;
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }

  private static final long[] mk_tokenSet_0()
  {
    long[] arrayOfLong = new long[1025];
    arrayOfLong[1] = 576460743847706622L;
    return arrayOfLong;
  }

  private static final long[] mk_tokenSet_1()
  {
    long[] arrayOfLong = new long[3988];
    arrayOfLong[0] = 68719476736L;
    arrayOfLong[1] = 576460745995190270L;
    arrayOfLong[3] = -36028797027352577L;
    for (int i = 4; i <= 127; ++i)
      arrayOfLong[i] = -1L;
    for (i = 193; i <= 197; ++i)
      arrayOfLong[i] = -1L;
    arrayOfLong[198] = 65535L;
    for (i = 204; i <= 205; ++i)
      arrayOfLong[i] = -1L;
    for (i = 208; i <= 243; ++i)
      arrayOfLong[i] = -1L;
    arrayOfLong[244] = 70368744177663L;
    for (i = 312; i <= 639; ++i)
      arrayOfLong[i] = -1L;
    for (i = 996; i <= 1003; ++i)
      arrayOfLong[i] = -1L;
    return arrayOfLong;
  }

  private static final long[] mk_tokenSet_2()
  {
    long[] arrayOfLong = new long[2048];
    arrayOfLong[0] = -17179869192L;
    arrayOfLong[1] = -268435457L;
    for (int i = 2; i <= 1022; ++i)
      arrayOfLong[i] = -1L;
    arrayOfLong[1023] = 9223372036854775807L;
    return arrayOfLong;
  }

  private static final long[] mk_tokenSet_3()
  {
    long[] arrayOfLong = new long[2048];
    arrayOfLong[0] = -549755813896L;
    arrayOfLong[1] = -268435457L;
    for (int i = 2; i <= 1022; ++i)
      arrayOfLong[i] = -1L;
    arrayOfLong[1023] = 9223372036854775807L;
    return arrayOfLong;
  }
}